package com.ruoyi.order.domain;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;

import com.entity.concat.ITimeEntity;
import com.ruoyi.common.core.domain.Entity;

/**
 **
 * 订单对象 mg_order
 *
 * @author ruoyi
 * @date 2024-01-08
 */
public class MgOrder extends Entity implements ITimeEntity<Long> {
	private static final long serialVersionUID = 1L;

	/** id */
	private Integer id;

	/** 订单标识 */
	@Excel(name = "订单标识")
	private String orderSnId;

	/** 服务价格 */
	@Excel(name = "服务价格")
	private BigDecimal servicePrice;
	
	@Excel(name = "总价")
	private BigDecimal totalPrice;
	
	@Excel(name = "折扣")
	private Float discount;
	
	private Long dispatchTime;
	
	private String serviceTypeName;
	
	
	/**
	 * 总价
	 */
	@Excel(name = "实际支付价格")
	private BigDecimal actualPaidPrice;

	/** 服务类型 0 基础服务 1 数据作图与科研绘图服务 */
	@Excel(name = "服务类型 0 基础服务  1  数据作图与科研绘图服务")
	private Long serviceType;

	/** 字数 篇数 */
	@Excel(name = "字数 篇数")
	private Long wordSize;

	/** 用户【编号】 */
	@Excel(name = "用户【编号】")
	private Long userId;

	/** 目标期刊 */
	@Excel(name = "目标期刊")
	private String targetJournal;

	/** 支付时间 */
	@Excel(name = "支付时间")
	private Long payTime;

	/** 完结时间 */
	@Excel(name = "完结时间")
	private Long overTime;

	/** 服务id */
	@Excel(name = "服务id")
	private Integer serviceId;
	/**
	 * 语言配置服务编号【废弃】
	 */
	private Integer languageServiceId;

	/**
	 * 平台订单状态：-1：取消订单 0: 待报价 1: 已报价 2: 待支付 3: 待确认 4: 处理中 5:待派稿 6: 已返稿 7返回编辑确认8
	 * 待审核未通过9 已确认 10 已完成
	 */
	@Excel(name = "平台订单状态：-1：取消订单 0: 待报价 1: 已报价 2: 待支付 3: 待确认 4:  处理中 5:待派稿 6: 已返稿 7返回编辑确认8	待审核未通过9	已确认 10	已完成")
	private Integer orderStatus;

	/** 编辑端状态：0 待处理 1 处理中 2 已返稿, */
	@Excel(name = "编辑端状态：0 待处理 1  处理中 2 已返稿,")
	private Byte editStatus;

	/** 用户端状态 -1 已取消 0 待报价 1 已报价 2 待支付 3 待确认 4 处理中 5 已返稿 6 待审核 7 未通过 8 已完成 */
	@Excel(name = "用户端状态 -1  已取消 0   待报价 1   已报价 2   待支付 3   待确认 4   处理中 5   已返稿 6 待审核 7 未通过 8  已完成")
	private Byte userStatus;

	/** 评价状态 0未评价 1已评价 */
	@Excel(name = "评价状态 0未评价 1已评价")
	private Integer commentStatus;

//	/** 语言配置服务编号【废弃】 */
//	@Excel(name = "语言配置服务编号【废弃】")
//	private Long languageServiceId;

	/** 支付类型编号 */
	@Excel(name = "支付类型编号")
	private Long payType;

	
	/** 订单备注 */
	@Excel(name = "订单备注")
	private String remarks;

	/** 订单类型0普通订单1货到付款 */
	@Excel(name = "订单类型0普通订单1货到付款")
	private Integer orderType;

	/** 0正常1 已支付又改为 未支付了 */
	@Excel(name = "0正常1 已支付又改为 未支付了")
	private Byte status;

	/** 1需要发票，0不需要 */
	@Excel(name = "1需要发票，0不需要 ")
	private Byte translate;

	/** 是否加急 0 否 1是 */
	@Excel(name = "是否加急 0 否 1是")
	private Byte urgent;

	/** 平台[：0代表pc，1代表app 2 wap, 3微商城] */
	@Excel(name = "平台[：0代表pc，1代表app 2 wap, 3微商城]")
	private Byte platform;

	/** 优惠券抵扣金额 */
	@Excel(name = "优惠券抵扣金额")
	private BigDecimal couponDeductible;

	/** 专业领域 */
	@Excel(name = "专业领域")
	private String professionalField;

	/** 文章标题 */
	@Excel(name = "文章标题")
	private String article;

	/** 格式 0 latex 1 word 2 没有格式 */
	@Excel(name = "格式 0 latex 1 word 2 没有格式")
	private Byte format;

	/** 支付管理id */
	@Excel(name = "支付管理id")
	private Integer payManagerId;

	/** 推荐期刊 0 否 1 是 */
	@Excel(name = "推荐期刊")
	private Integer recommendNumber;

	/** 处理人 */
	@Excel(name = "处理人")
	private Long processed;
	
	private List<Long> processeds;

	/** 团队id 0 代表没有团队 */
	@Excel(name = "团队id 0 代表没有团队")
	private Integer teamId;

	/** 服务状态【0 初始 1 反馈 2 售后】 */
	@Excel(name = "服务状态【0 初始 1 反馈 2 售后】")
	private Byte serviceStatus;

	/** 处理日期 */
	@Excel(name = "处理日期")
	private Long parseTime;

	/** 评分 */
	@Excel(name = "评分")
	private Byte score;

	/** 评论 */
	@Excel(name = "评论")
	private String comment;

	/** 拟帐合同文件 */
	@Excel(name = "拟帐合同文件")
	private String contractFile;

	/** 翻译证明文件 */
	@Excel(name = "翻译证明文件")
	private String translationProofFile;

	/** 需要拟帐合同 0 否 1 是 */
	@Excel(name = "需要拟帐合同 0 否 1 是")
	private Byte needContract;

	private List<Long> userIds = new ArrayList<Long>();
	
	
	/**
	 * 需要翻译证明 0 否 1是
	 *
	 */
	@Excel(name = "需要翻译证明文件", readConverterExp = " 0=否,1=是")
	private Byte needTranslationProof;

	/** 有 翻译证明 功能吗 0 没有 1 有 */
	@Excel(name = "有翻译证明功能吗", readConverterExp = "0=没有,1=有")
	private Byte havaTranslationProof;

	/**
	 * 编辑费用
	 */
	private BigDecimal processMoney;

	/**
	 * 处理人
	 */
	private String processedName;

	private String userName;

	/**
	 * 科腾备注
	 */
	private String ktRemark;

	/**
	 * 加急费用
	 */
	private BigDecimal urgentMoney;

	/**
	 * 使用查重券 0 否 1是
	 */
	private Byte useCheckConpon;

	/**
	 * 返稿日期
	 */
	private Long returnTime;

	private List<?> manscripts;
	/**
	 * 处理开始日期
	 */
	private Long handleStartTime;
	/**
	 * 处理结束日期
	 */
	private Long handleEndTime;
	
	private String serviceName;
	
	private String reason;
	
	
	/**
	 * 需求描述
	 */
	private String requirement;


	public BigDecimal getActualPaidPrice() {
		return actualPaidPrice;
	}

	public void setActualPaidPrice(BigDecimal actualPaidPrice) {
		this.actualPaidPrice = actualPaidPrice;
	}

	public List<?> getManscripts() {
		return manscripts;
	}

	public void setManscripts(List<?> manscripts) {
		this.manscripts = manscripts;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getOrderSnId() {
		return orderSnId;
	}

	public void setOrderSnId(String orderSnId) {
		this.orderSnId = orderSnId;
	}

	public BigDecimal getServicePrice() {
		return servicePrice;
	}

	public void setServicePrice(BigDecimal servicePrice) {
		this.servicePrice = servicePrice;
	}

	public Long getServiceType() {
		return serviceType;
	}

	public void setServiceType(Long serviceType) {
		this.serviceType = serviceType;
	}

	public Long getWordSize() {
		return wordSize;
	}

	public void setWordSize(Long wordSize) {
		this.wordSize = wordSize;
	}

	public Long getUserId() {
		return userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public String getTargetJournal() {
		return targetJournal;
	}

	public void setTargetJournal(String targetJournal) {
		this.targetJournal = targetJournal;
	}

	public Long getPayTime() {
		return payTime;
	}

	public void setPayTime(Long payTime) {
		this.payTime = payTime;
	}

	public Long getOverTime() {
		return overTime;
	}

	public void setOverTime(Long overTime) {
		this.overTime = overTime;
	}

	public Integer getServiceId() {
		return serviceId;
	}

	public void setServiceId(Integer serviceId) {
		this.serviceId = serviceId;
	}

	public Integer getOrderStatus() {
		return orderStatus;
	}

	public void setOrderStatus(Integer orderStatus) {
		this.orderStatus = orderStatus;
	}


	public Integer getCommentStatus() {
		return commentStatus;
	}

	public void setCommentStatus(Integer commentStatus) {
		this.commentStatus = commentStatus;
	}

	public Long getPayType() {
		return payType;
	}

	public void setPayType(Long payType) {
		this.payType = payType;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public Integer getOrderType() {
		return orderType;
	}

	public void setOrderType(Integer orderType) {
		this.orderType = orderType;
	}

	public Byte getStatus() {
		return status;
	}

	public void setStatus(Byte status) {
		this.status = status;
	}

	public Byte getTranslate() {
		return translate;
	}

	public void setTranslate(Byte translate) {
		this.translate = translate;
	}

	public Byte getUrgent() {
		return urgent;
	}

	public void setUrgent(Byte urgent) {
		this.urgent = urgent;
	}

	public Byte getPlatform() {
		return platform;
	}

	public void setPlatform(Byte platform) {
		this.platform = platform;
	}

	public BigDecimal getCouponDeductible() {
		return couponDeductible;
	}

	public void setCouponDeductible(BigDecimal couponDeductible) {
		this.couponDeductible = couponDeductible;
	}

	public String getProfessionalField() {
		return professionalField;
	}

	public void setProfessionalField(String professionalField) {
		this.professionalField = professionalField;
	}

	public String getArticle() {
		return article;
	}

	public void setArticle(String article) {
		this.article = article;
	}

	public Byte getFormat() {
		return format;
	}

	public void setFormat(Byte format) {
		this.format = format;
	}

	public Integer getPayManagerId() {
		return payManagerId;
	}

	public void setPayManagerId(Integer payManagerId) {
		this.payManagerId = payManagerId;
	}

	public Integer getRecommendNumber() {
		return recommendNumber;
	}

	public void setRecommendNumber(Integer recommendNumber) {
		this.recommendNumber = recommendNumber;
	}

	public Long getProcessed() {
		return processed;
	}

	public void setProcessed(Long processed) {
		this.processed = processed;
	}

	public Integer getTeamId() {
		return teamId;
	}

	public void setTeamId(Integer teamId) {
		this.teamId = teamId;
	}

	public Byte getServiceStatus() {
		return serviceStatus;
	}

	public void setServiceStatus(Byte serviceStatus) {
		this.serviceStatus = serviceStatus;
	}

	public Long getParseTime() {
		return parseTime;
	}

	public void setParseTime(Long parseTime) {
		this.parseTime = parseTime;
	}

	public Byte getScore() {
		return score;
	}

	public void setScore(Byte score) {
		this.score = score;
	}

	public String getComment() {
		return comment;
	}

	public void setComment(String comment) {
		this.comment = comment;
	}

	public String getContractFile() {
		return contractFile;
	}

	public void setContractFile(String contractFile) {
		this.contractFile = contractFile;
	}

	public String getTranslationProofFile() {
		return translationProofFile;
	}

	public void setTranslationProofFile(String translationProofFile) {
		this.translationProofFile = translationProofFile;
	}

	public Byte getNeedContract() {
		return needContract;
	}

	public void setNeedContract(Byte needContract) {
		this.needContract = needContract;
	}

	public Byte getNeedTranslationProof() {
		return needTranslationProof;
	}

	public void setNeedTranslationProof(Byte needTranslationProof) {
		this.needTranslationProof = needTranslationProof;
	}

	public Byte getHavaTranslationProof() {
		return havaTranslationProof;
	}

	public void setHavaTranslationProof(Byte havaTranslationProof) {
		this.havaTranslationProof = havaTranslationProof;
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("id", getId())
				.append("orderSnId", getOrderSnId()).append("servicePrice", getServicePrice())
				.append("serviceType", getServiceType()).append("wordSize", getWordSize()).append("userId", getUserId())
				.append("targetJournal", getTargetJournal()).append("payTime", getPayTime())
				.append("overTime", getOverTime()).append("serviceId", getServiceId())
				.append("orderStatus", getOrderStatus()).append("editStatus", getEditStatus())
				.append("userStatus", getUserStatus()).append("commentStatus", getCommentStatus())
				.append("payType", getPayType())
				.append("remarks", getRemarks()).append("orderType", getOrderType()).append("status", getStatus())
				.append("translate", getTranslate()).append("urgent", getUrgent()).append("platform", getPlatform())
				.append("couponDeductible", getCouponDeductible()).append("professionalField", getProfessionalField())
				.append("article", getArticle()).append("format", getFormat()).append("createTime", getCreateTime())
				.append("payManagerId", getPayManagerId()).append("recommendNumber", getRecommendNumber())
				.append("processed", getProcessed()).append("teamId", getTeamId())
				.append("serviceStatus", getServiceStatus()).append("parseTime", getParseTime())
				.append("score", getScore()).append("comment", getComment()).append("contractFile", getContractFile())
				.append("translationProofFile", getTranslationProofFile()).append("needContract", getNeedContract())
				.append("needTranslationProof", getNeedTranslationProof())
				.append("havaTranslationProof", getHavaTranslationProof()).toString();
	}

	public String getProcessedName() {
		return processedName;
	}

	public Byte getEditStatus() {
		return editStatus;
	}

	public void setEditStatus(Byte editStatus) {
		this.editStatus = editStatus;
	}

	public Byte getUserStatus() {
		return userStatus;
	}

	public void setUserStatus(Byte userStatus) {
		this.userStatus = userStatus;
	}

	public void setProcessedName(String processedName) {
		this.processedName = processedName;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getKtRemark() {
		return ktRemark;
	}

	public void setKtRemark(String ktRemark) {
		this.ktRemark = ktRemark;
	}

	public BigDecimal getUrgentMoney() {
		return urgentMoney;
	}

	public void setUrgentMoney(BigDecimal urgentMoney) {
		this.urgentMoney = urgentMoney;
	}

	public Byte getUseCheckConpon() {
		return useCheckConpon;
	}

	public void setUseCheckConpon(Byte useCheckConpon) {
		this.useCheckConpon = useCheckConpon;
	}

	public BigDecimal getProcessMoney() {
		return processMoney;
	}

	public void setProcessMoney(BigDecimal processMoney) {
		this.processMoney = processMoney;
	}

	public Long getReturnTime() {
		return returnTime;
	}

	public void setReturnTime(Long returnTime) {
		this.returnTime = returnTime;
	}

	public Long getHandleStartTime() {
		return handleStartTime;
	}

	public void setHandleStartTime(Long handleStartTime) {
		this.handleStartTime = handleStartTime;
	}

	public Long getHandleEndTime() {
		return handleEndTime;
	}

	public void setHandleEndTime(Long handleEndTime) {
		this.handleEndTime = handleEndTime;
	}

	public Integer getLanguageServiceId() {
		return languageServiceId;
	}

	public void setLanguageServiceId(Integer languageServiceId) {
		this.languageServiceId = languageServiceId;
	}

	public BigDecimal getTotalPrice() {
		return totalPrice;
	}

	public void setTotalPrice(BigDecimal totalPrice) {
		this.totalPrice = totalPrice;
	}

	public Float getDiscount() {
		return discount;
	}

	public void setDiscount(Float discount) {
		this.discount = discount;
	}

	public String getServiceName() {
		return serviceName;
	}

	public void setServiceName(String serviceName) {
		this.serviceName = serviceName;
	}

	public String getReason() {
		return reason;
	}

	public void setReason(String reason) {
		this.reason = reason;
	}

	public Long getDispatchTime() {
		return dispatchTime;
	}

	public void setDispatchTime(Long dispatchTime) {
		this.dispatchTime = dispatchTime;
	}

	public String getRequirement() {
		return requirement;
	}

	public void setRequirement(String requirement) {
		this.requirement = requirement;
	}

	public List<Long> getUserIds() {
		return userIds;
	}

	public void setUserIds(List<Long> userIds) {
		this.userIds = userIds;
	}

	public List<Long> getProcesseds() {
		return processeds;
	}

	public void setProcesseds(List<Long> processeds) {
		this.processeds = processeds;
	}

	public String getServiceTypeName() {
		return serviceTypeName;
	}

	public void setServiceTypeName(String serviceTypeName) {
		this.serviceTypeName = serviceTypeName;
	}
}
